]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
6 years agoapp-cache: Fix cache for folder translations
Andre Moreira Magalhaes [Thu, 2 Apr 2020 16:20:16 +0000 (13:20 -0300)]
app-cache: Fix cache for folder translations

The app-cache code currently stores the folder translations in a hash
that can be accessed via shell_util_get_translated_folder_name().
This hash uses the filename (inc. extension) for the "desktop-directory"
as key which causes an issue when trying to find the translation
on AppDisplay._findBestFolderName() which gets categories (folder names)
from the app info which doesn't contain the ".directory" extension.

Fix that by storing the filename without extension as the hash key for
the cached folder translations.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1168

6 years agoUpdate Serbian translation
Марко Костић [Thu, 2 Apr 2020 19:43:03 +0000 (19:43 +0000)]
Update Serbian translation

(cherry picked from commit 428d38179d54aeaa89bf35f4ce475d48c8ff2467)

6 years agoUpdate Basque translation
Ibai Oihanguren Sala [Thu, 2 Apr 2020 16:15:32 +0000 (16:15 +0000)]
Update Basque translation

(cherry picked from commit fe9708ebd85b0c08562ad079fb41ece31ccdf152)

6 years agobluetooth: Fix infinite loop
Florian Müllner [Thu, 2 Apr 2020 10:42:41 +0000 (12:42 +0200)]
bluetooth: Fix infinite loop

Bailing out early of the loop means the iter is never increased,
resulting in an infinite loop.

Fixes 26c2cb9f6.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1165

6 years agoUpdate Finnish translation
Jiri Grönroos [Thu, 2 Apr 2020 09:44:36 +0000 (09:44 +0000)]
Update Finnish translation

(cherry picked from commit 8398769321d0fa21f31f42a2a65490fdedd55bf3)

6 years agobluetooth: Update bluetooth submenu title
Mariana Picolo [Sat, 28 Mar 2020 18:56:20 +0000 (15:56 -0300)]
bluetooth: Update bluetooth submenu title

- "Bluetooth" to "on/off" labels
  to match with other menus

- Display single connected device name
  to show more relevant information

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2340

6 years agobluetooth: Add getDeviceInfos function
Mariana Picolo [Mon, 30 Mar 2020 08:48:06 +0000 (05:48 -0300)]
bluetooth: Add getDeviceInfos function

In case where only one device is connected, we want to display its name
in the menu. For that we will need more than the number of known/connected
devices, so change the function to return an array of device infos instead.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2340

6 years agoUpdate Persian translation
Danial Behzadi [Wed, 1 Apr 2020 01:42:46 +0000 (01:42 +0000)]
Update Persian translation

(cherry picked from commit 69426cbfdacca6450c1450745a6ba5b844789e9b)

6 years agomain: Don't override DesktopAppInfo desktop if already GNOME
Marco Trevisan (Treviño) [Tue, 31 Mar 2020 18:13:46 +0000 (20:13 +0200)]
main: Don't override DesktopAppInfo desktop if already GNOME

During the shell initialization we call the (deprecated) function to
override the Desktop environment in Gio DesktopAppInfo to make sure that
applications are correctly shown (as per commit b2fbf5a2), however this
might break the cases in which $XDG_CURRENT_DESKTOP is already set and
contains GNOME (given that is now a list).

In Ubuntu this is in fact set to: ubuntu:GNOME.
Now, if an application contains NotShowIn=ubuntu, the key will be ignored by
the shell, and the application is still listed everywhere.

So, override the DesktopAppInfo desktop environment only in the case that
the current desktop is not already GNOME.

At the current date I think we could just safely get rid of this override at
all, but there could be still cases where it still might be useful, like when
running as nested in some other environment, so keeping it.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1156

6 years agoappDisplay: Clear animateLater callbacks when unmapping
Jonas Ådahl [Tue, 31 Mar 2020 17:00:58 +0000 (19:00 +0200)]
appDisplay: Clear animateLater callbacks when unmapping

In some situations we could end up not with lingering 'view-loaded'
handler. This could result in delayed spring animate-in being initiated,
e.g. after a minute after the activities overview was already closed.

Fix this by removing any lingering signal or later handlers when
unmapping.

Fixes: 5c33fe4a0a4eb4ed
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1155

6 years agoUpdate Chinese (Taiwan) translation
Cheng-Chia Tseng [Tue, 31 Mar 2020 16:07:19 +0000 (16:07 +0000)]
Update Chinese (Taiwan) translation

(cherry picked from commit 1ab5e6973a9c16401947d350b3159e2c955e62b2)

6 years agoUpdate Friulian translation
Fabio Tomat [Tue, 31 Mar 2020 11:14:15 +0000 (11:14 +0000)]
Update Friulian translation

(cherry picked from commit 1dea3341ecdb261005a209eb9b99b1c2a6b9e52e)

6 years agojs: Promisify async operations
Florian Müllner [Thu, 19 Dec 2019 19:50:37 +0000 (20:50 +0100)]
js: Promisify async operations

Promises make asynchronous operations easier to manage, in particular
when used through the async/await syntax that allows for asynchronous
code to closely resemble synchronous one.

gjs has included a Gio._promisify() helper for a while now, which
monkey-patches methods that follow GIO's async pattern to return a
Promise when called without a callback argument.

Use that to get rid of all those GAsyncReadyCallbacks!

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1126

6 years agobuild: Post-release version bump
Florian Müllner [Mon, 30 Mar 2020 22:36:48 +0000 (00:36 +0200)]
build: Post-release version bump

With 3.36.1 out, let's start the next development cycle ...

6 years agoappDisplay: Don't start animation from the 'paint' signal
Jonas Ådahl [Mon, 30 Mar 2020 13:16:53 +0000 (15:16 +0200)]
appDisplay: Don't start animation from the 'paint' signal

Starting the animation from the actor 'paint' signal has various
unwanted consequences, such as sometimes trigger a
clutter_actor_queue_relayout() during the paint phase. One unwanted
consequence was that an offscreen actor effect was disabled during
painting, meaning the effect would begin being active, but later during
the post-paint processing being disabled. The caused said effect to push
an offscreen framebuffer to the paint context, but then just destroy it
instead of popping it. When this happened, we'd end up trying to operate
on a framebuffer that may had been finalized, or not, depending on the
garbage collector. Sometimes, for some users, this caused a segmentation
fault when trying to pop a matrix from the framebuffer matrix stack.

Deal with this more properly, by using the 'view-loaded' signal to wait
with animation until the view is loaded, as well as using MetaLater to
schedule the start of the animation.

For when a view was signalled to be ready, we're in a state where we can
start animation before the next frame as the layout is ready, but when
not, we have to add back the "hack" where we must wait for one frame for
the target icon positions to be up to date. Do this by adding a
MetaLater IDLE callback that starts the animation *after* the next
frame. This also needs the old 'opacity = 0' work around to not show an
incorrect first frame.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2418
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1154

6 years agojs: Do not set entries' ClutterText:editable property
Florian Müllner [Wed, 18 Mar 2020 21:20:33 +0000 (22:20 +0100)]
js: Do not set entries' ClutterText:editable property

The property influences the text's (and thus entry's) minimum width[0],
which is generally not what we want. And as we now prevent text from
being entered in non-reactive entries by other means, we can simply
drop it.

[0] https://gitlab.gnome.org/GNOME/mutter/-/blob/master/clutter/clutter/clutter-text.c#L2940

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2423

6 years agost/entry: Unset key focus when made unreactive
Florian Müllner [Sun, 29 Mar 2020 17:36:12 +0000 (19:36 +0200)]
st/entry: Unset key focus when made unreactive

It seems reasonable that an entry shouldn't allow entering text when not
reactive. The same could be achieved by changing the text's :editable
property, however that will disable scrolling if the text doesn't fit,
which may result in an unwanted size change.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2423

6 years agost/entry: Bind ClutterText reactivity to entry
Florian Müllner [Wed, 18 Mar 2020 21:10:36 +0000 (22:10 +0100)]
st/entry: Bind ClutterText reactivity to entry

The text is part of the entry, so it is surprising that it can
still be edited when the entry itself isn't reactive. Address
this by setting up a binding instead of expecting all consumers
to handle the case themselves.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2423

6 years agost/entry: Remove unused macro
Florian Müllner [Sun, 29 Mar 2020 20:11:35 +0000 (22:11 +0200)]
st/entry: Remove unused macro

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2423

6 years agoUpdated Lithuanian translation
Aurimas Černius [Sun, 29 Mar 2020 19:28:04 +0000 (22:28 +0300)]
Updated Lithuanian translation

6 years agoextensions-app: Point homepage in metainfo to subproject
Florian Müllner [Sun, 29 Mar 2020 00:41:57 +0000 (01:41 +0100)]
extensions-app: Point homepage in metainfo to subproject

This is where the app code is located now, so it makes for a less
surprising landing page than the toplevel gnome-shell directory.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1150

6 years agoextensions-app: Update README
Florian Müllner [Sun, 29 Mar 2020 00:35:55 +0000 (01:35 +0100)]
extensions-app: Update README

Add the icon and use the app name instead of the subproject name.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1150

6 years agocheckbox: Improve accessibility of check boxes for Orca users
Luke Yelavich [Sun, 29 Mar 2020 01:42:44 +0000 (12:42 +1100)]
checkbox: Improve accessibility of check boxes for Orca users

Set the label actor, so Orca presents the label text when the check box
has focus. Also change the role to ATK_ROLE_CHECKBOX.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2517

6 years agoUpdate Hebrew translation
Yosef Or Boczko [Sun, 29 Mar 2020 07:45:59 +0000 (07:45 +0000)]
Update Hebrew translation

6 years agocalendar: Improve the accessibility of the "Do Not Disturb" switch
Luke Yelavich [Sat, 28 Mar 2020 03:56:23 +0000 (14:56 +1100)]
calendar: Improve the accessibility of the "Do Not Disturb" switch

Set the do not disturb label as the label actor for the do not disturb switch,
so that Orca speaks the do not disturb label when the user moves
keyboard focus to the do not disturb switch.

Also enable toggle mode for the "Do Not Disturb" button and bind it's checked
state to the state property of the switch. This makes sure that Orca presents
thecorrect state of the do not disturb switch to the user.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2508

6 years agoUpdate Hebrew translation
Yosef Or Boczko [Sat, 28 Mar 2020 23:10:11 +0000 (23:10 +0000)]
Update Hebrew translation

6 years agoshellDBus: Return error from ReloadExtension
Florian Müllner [Sat, 28 Mar 2020 17:55:17 +0000 (18:55 +0100)]
shellDBus: Return error from ReloadExtension

The method has been deprecated because it generally doesn't (and
can't) work. Clarify that by returning an error instead of
apparently doing nothing.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2510

6 years agokeyboard: Hide keyboardBox after destroying the keyboard
Jonas Dreßler [Sat, 28 Mar 2020 13:36:20 +0000 (14:36 +0100)]
keyboard: Hide keyboardBox after destroying the keyboard

It seems there is a weird race condition between Clutter trying to
destroy the keyboard actor and Clutter trying to hide the keyboardBox
container actor: If the keyboardBox is hidden before destroying the
keyboard actor, Clutter doesn't repaint anything and the keyboard
remains visible until something else draws over it.

To fix this issue until we find the underlying Clutter bug, simply
destroy the keyboard actor before hiding the keyboardBox. The order in
which we call these doesn't matter anyway since hideKeyboard(true) hides
the keyboard immediately without an animation.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/1736
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1142

6 years agolayout: Use translation_y of 0 to hide keyboard
Jonas Dreßler [Sat, 28 Mar 2020 13:34:24 +0000 (14:34 +0100)]
layout: Use translation_y of 0 to hide keyboard

Since we show the keyboard using a translation_y of -keyboardHeight, the
keyboard will be moved down far enough to be out of sight by setting
translation_y to 0.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1142

6 years agokeyboard: Don't include keyboard devices when updating lastDevice
Jonas Dreßler [Sat, 28 Mar 2020 13:15:09 +0000 (14:15 +0100)]
keyboard: Don't include keyboard devices when updating lastDevice

We're dealing with attached keyboards now using the touch_mode property
of ClutterSeat: If a device has a keyboard attached, the touch-mode is
FALSE and we won't automatically show the OSK on touches, also the
touch-mode gets set to FALSE when an external keyboard is being plugged
in, so that also hides the OSK automatically.

With that, we can now ignore keyboard devices when updating the last
used device and no longer have to special-case our own virtual devices.

Because there was no special-case for the virtual device we use on
Wayland now, this fixes a bug where the keyboard disappeared after
touching keys like Enter or Backspace.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2287
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1142

6 years agovolume: Cancel before checking state
Florian Müllner [Sat, 28 Mar 2020 02:37:50 +0000 (03:37 +0100)]
volume: Cancel before checking state

Since commit 2894085c45 we omit sound feedback on volume changes
if something is already outputting sound. Unfortunately that
"something" may be our own feedback (from a previous volume
change).

In that case we do not want to omit the new feedback, so instead
cancel the previous one.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1147

6 years agokeyboard: Run dispose manually on virtual input device when destroying
Jonas Dreßler [Sat, 28 Mar 2020 10:54:32 +0000 (11:54 +0100)]
keyboard: Run dispose manually on virtual input device when destroying

We want to make sure any buttons that are still pressed on the virtual
input device used by the OSK are released immediately when destroying
the OSK. Do this by calling run_dispose() on the destroy() function of
the KeyboardController, which makes sure we don't have to wait for the
garbage collection to dispose the object and a still pressed key remains
being pressed until the GC kicks in.

Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2287

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/956
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1141

6 years agost: Honor alpha range specified by pango_attr_foreground_alpha_new()
Carlos Garnacho [Sat, 28 Mar 2020 15:38:14 +0000 (16:38 +0100)]
st: Honor alpha range specified by pango_attr_foreground_alpha_new()

This is documented as a value between 1 and 65536. However we were passing
a 0 value for 100% transparent colors, which is interpreted as "system
inherited" in pango_renderer_get_alpha() docs.

Ensure we respect this range by specifying the minimum allowed alpha (1)
if the color is fully transparent. If someone notices this 1/65535th change
I'll ask him how many pleiades can he count.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2504
(yes, again).

6 years agoinputMethod: Protect for running with older mutter versions
Carlos Garnacho [Sat, 28 Mar 2020 16:26:39 +0000 (17:26 +0100)]
inputMethod: Protect for running with older mutter versions

The offset argument is changing from uint to int. Which means we
might would pass a negative offset and trigger an "out of bounds"
error. Make it work more or less alright with older mutters, by
clamping the offset to 0.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1146

6 years agodateMenu: Only use nearest city when appropriate
Florian Müllner [Sat, 28 Mar 2020 01:54:14 +0000 (02:54 +0100)]
dateMenu: Only use nearest city when appropriate

Since commit 784c0b7e4 we use the name of the nearest city rather
than the weather station, as the latter tend to have unwieldy
and weird names.

However the nearest city may not be that near after all, in which
case the result is again surprising.

Address this by not using the nearest city name unconditionally, but
only if it appears in the station name.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2468

6 years agoAdd Kurdish Sorani translation
Jwtiyar Nariman [Sat, 28 Mar 2020 15:39:04 +0000 (15:39 +0000)]
Add Kurdish Sorani translation

(cherry picked from commit aba60dcac8651709528dab194856e538769b4e94)

6 years agounlockDialog: Only cancel AuthPrompt if it exists
Georges Basile Stavracas Neto [Fri, 27 Mar 2020 23:35:36 +0000 (20:35 -0300)]
unlockDialog: Only cancel AuthPrompt if it exists

AuthPrompt is created on demand, and this._authPrompt is
expected to be null except on very strictly controlled
occasions. The idle monitor callback isn't one of them.

Check if AuthPrompt exists before cancelling it.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2371

6 years agoci: Build Extensions flatpak bundle
Florian Müllner [Thu, 19 Mar 2020 17:20:27 +0000 (18:20 +0100)]
ci: Build Extensions flatpak bundle

GNOME apps use (or are encouraged to use) flatpak in their CI setup[0],
so do that for the Extensions app as well and get:

 - test building the flatpak
 - produce a bundle for download and testing
 - publish the build in gnome-nightly

[0] https://gitlab.gnome.org/GNOME/Initiatives/wikis/DevOps-with-Flatpak

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1133

6 years agoextensions-app: Add flatpak manifest
Florian Müllner [Sun, 1 Dec 2019 02:28:56 +0000 (03:28 +0100)]
extensions-app: Add flatpak manifest

We finally have everything in place for distributing the Extensions app
as flatpak without jumping through too many hoops. Add a manifest that
can produce a nightly build like other GNOME modules, and can serve as
a template for a stable manifest on flathub.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1133

6 years agoextensions-app: Move Extensions app to new subproject
Florian Müllner [Sun, 1 Dec 2019 02:01:02 +0000 (03:01 +0100)]
extensions-app: Move Extensions app to new subproject

The Extensions app code is now independent enough from the rest of the code
base to move it to its own subprojects, like we did for the extensions-tool.

This allows for stand-alone builds of the app, which we are about to use
for distributing it as flatpak.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1133

6 years agoextensionPrefs: Fake Config module
Florian Müllner [Mon, 9 Mar 2020 00:59:09 +0000 (01:59 +0100)]
extensionPrefs: Fake Config module

We include config.js because it is a dependency of ExtensionUtils,
but it's not actually used in the code paths we exercise.

As we want to allow stand-alone builds of the app, it is much easier to
fake the module than to either include a generated file from elsewhere
in the tree or generate it ourselves.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1133

6 years agost: Forward CSS foreground alpha as a PangoAttribute to text
Carlos Garnacho [Fri, 27 Mar 2020 22:06:49 +0000 (23:06 +0100)]
st: Forward CSS foreground alpha as a PangoAttribute to text

Let the PangoRenderer handle this.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2504

6 years agoappDisplay: Only use dragMonitor for one icon at a time
Jonas Dreßler [Tue, 29 Oct 2019 23:06:10 +0000 (00:06 +0100)]
appDisplay: Only use dragMonitor for one icon at a time

Instead of adding a dragMonitor for every icon in the grid as soon as
one icon is getting dragged, only add a dragMonitor for the icon that is
currently being dragged over (ie. the current drag-target). With a large
number of icons in the iconGrid, this should significantly reduce lags
while dragging.

We can do this by detecting the DnD-entering of an icon or folder using
the `handleDragOver()` callback of drag-targets, adding the dragMonitor
because we know an icon is hovering above the drag-target and then
detecting the DnD-leaving of the drag-target by using the `dragMotion()`
handler, where we remove the dragMonitor again as soon as the
targetActor is no longer our actor (ie. the drag-target).

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/849

6 years agoappDisplay: Remove dragMonitor when FolderIcon is destroyed
Jonas Dreßler [Sat, 23 Nov 2019 18:57:02 +0000 (19:57 +0100)]
appDisplay: Remove dragMonitor when FolderIcon is destroyed

While it should be impossible to destroy a FolderIcon while a DnD action
is still going on, there might still be rare cases where this happens
(ie. when a folder is removed because an app got deleted during DnD).

So make sure we're on the safe side here and don't potentially leave
dragMonitors around after the icon is destroyed by removing the
dragMonitor inside the onDestroy handler of the FolderIcon, just like we
do for AppIcons.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/849

6 years agoblur-effect: Handle failure of background blitting gracefully
Jonas Dreßler [Thu, 13 Feb 2020 21:50:40 +0000 (22:50 +0100)]
blur-effect: Handle failure of background blitting gracefully

`paint_background` already provides a return value in case the blitting
of the framebuffer fails, handle that and fall back to only drawing the
actor in case something goes wrong.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1000

6 years agoblur-effect: Properly clear background framebuffer
Jonas Dreßler [Thu, 13 Feb 2020 12:08:28 +0000 (13:08 +0100)]
blur-effect: Properly clear background framebuffer

We want to completely clear the background framebuffer when switching
back to ACTOR mode to make sure the `background_fb.framebuffer` check
will fail in `update_background_fbo` when switching to BACKGROUND mode
again. Otherwise the checks in `update_background_fbo` will return TRUE
and we will keep using the background framebuffer that was created
before switchig to ACTOR mode.

While at it, also clear the background framebuffer completely when
changing the actor to avoid the same issue here.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1000

6 years agoblur-effect: Fix framebuffer sizes when stage-view scaling is used
Jonas Dreßler [Wed, 12 Feb 2020 22:02:14 +0000 (23:02 +0100)]
blur-effect: Fix framebuffer sizes when stage-view scaling is used

When blurring only the actor (ACTOR mode), we don't want to apply any
scale, it looks fine without using the resource scale and it also seems
like `clutter_actor_continue_paint` in `paint_actor_offscreen` only
draws an unscaled texture anyway (ie. if the resource scale is 2, only a
quarter of the framebuffer is being drawn to).

In BACKGROUND mode though, we need to scale the framebuffer using the
scale factor of the stage view (ie. the final scale factor for the
monitor) because the content of the framebuffer we blit is scaled using
that factor. Also, since the framebuffer we blit belongs to a stage view
and only includes the contents of this view, we need to adjust the
stage-coordinates of the actor to be relative to the stage-view.

To make sure we don't have to get the transformed actor size or position
multiple times during one paint-run and don't have to carefully floor()
or ceil() widths and positions, store the size of the actor (which is
also the size of the framebuffer) and its position relative to the stage
view inside a ClutterActorBox.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1000

6 years agoblur-effect: Don't check whether effect is enabled when painting
Jonas Dreßler [Fri, 27 Mar 2020 22:00:36 +0000 (23:00 +0100)]
blur-effect: Don't check whether effect is enabled when painting

A ClutterEffect is being painted as part of the paint cycle of
ClutterActor, where _clutter_effect_paint() is called before painting
the actual actor. With that, it's impossible that an effect gets painted
while it's disabled, so remove the check whether the ClutterActorMeta is
enabled before painting.

Also if everything works fine in Clutter, the ClutterActorMeta should
have an actor set and we've been notified about that actor in
shell_blur_effect_set_actor(), so assert that our cached actor is set
when painting the effect.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1000

6 years agoblur-effect: Fix alignment of function arguments
Jonas Dreßler [Thu, 13 Feb 2020 12:07:55 +0000 (13:07 +0100)]
blur-effect: Fix alignment of function arguments

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1000

6 years agoinputMethod: Fix delete-surrounding-text signal
Takao Fujiwara [Wed, 14 Aug 2019 08:16:46 +0000 (17:16 +0900)]
inputMethod: Fix delete-surrounding-text signal

Forward the arguments at the 'delete-surrounding-text' signal
from IBusInputContext to clutter_input_method_delete_surrounding()
so that ibus-typing-booster use the deleting surrounding text function.

Input method engines can delete the output text in applications
with this function.

This change will require a change of mutter of mutter!517
because the first arguemnt of the 'delete-surrounding-text' is INT
to express the offset of the current cursor position but
the first one of clutter_input_method_delete_surrounding() is UINT
since the Wayland spec accepts UINT in delete_surrounding()

mutter will change the type of the first one to INT in
clutter_input_method_delete_surrounding() to work with this change.

https://gitlab.gnome.org/GNOME/mutter/issues/539
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/477

6 years agodata: Update Norwegian OSK layout
Bjørn Lie [Fri, 6 Mar 2020 12:48:51 +0000 (12:48 +0000)]
data: Update Norwegian OSK layout

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1073

6 years agocldr2json: Do not overwrite existing files
Florian Müllner [Fri, 27 Mar 2020 15:33:48 +0000 (16:33 +0100)]
cldr2json: Do not overwrite existing files

We had various requests to improve existing OSK layouts, but
haven't accepted them so far as any changes would be overridden
when regenerating the layouts.

However as the upstream layouts at http://www.unicode.org are
extremely slow to update(*), we shouldn't block all improvements.

So instead of letting the update script override all existing
layouts, just make it import new layouts.

(*) not their fault, as the android layouts are a downstream to Google

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1136

6 years agocldr2json: Don't use deprecated method
Florian Müllner [Fri, 27 Mar 2020 15:51:47 +0000 (16:51 +0100)]
cldr2json: Don't use deprecated method

Replace the deprecated 'warn()' with 'warning()' to shut up
a runtime warning.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1136

6 years agodata: Don't clone cldr2json when updating OSK layouts
Florian Müllner [Fri, 27 Mar 2020 15:36:04 +0000 (16:36 +0100)]
data: Don't clone cldr2json when updating OSK layouts

Meh, we imported the module so we don't have to go through another
upstream to make changes to the script, but then ended up not using
the fork at all.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1136

6 years agodata: Move cldr2json fork into subdirectory
Florian Müllner [Fri, 27 Mar 2020 15:35:00 +0000 (16:35 +0100)]
data: Move cldr2json fork into subdirectory

The module was imported into the toplevel in !424, but that's at
least a bit weird:
 - it's a helper script for one particular aspect (OSK layouts)
 - it adds a README.mdwn to our own README.md, and a test/ directory
   to our tests/

Move the whole thing to a subdirectory under data/, which is more
appropriate.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1136

6 years agotheme/switcher-popup: Increase contrast of switcher items
Jonas Dreßler [Thu, 26 Mar 2020 21:12:39 +0000 (22:12 +0100)]
theme/switcher-popup: Increase contrast of switcher items

Use a brighter color and increase the contrast of the selected/active
items in the switcher popup.

Since a bright color doesn't go well with a box-shadow, remove that
shadow, an effect like should only be used for elements clicked with a
mouse anyway.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1135

6 years agoextensionSystem: Require Extensions app for updates
Florian Müllner [Wed, 11 Mar 2020 19:09:11 +0000 (20:09 +0100)]
extensionSystem: Require Extensions app for updates

While we don't technically need the app to download and apply
updates, we do require it for notifying the user about available
updates and listing extensions with pending updates.

So instead of intransparently applying updates in the background
without the user noticing, disable updates altogether if the
Extensions app is not installed.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2346

6 years agoextensionDownloader: Stop handling 'blacklist' operation
Florian Müllner [Wed, 25 Mar 2020 23:39:29 +0000 (00:39 +0100)]
extensionDownloader: Stop handling 'blacklist' operation

Blacklist support was added all the way back in commit 1e286e43, but
the code had been defunctional until recently. While uninstalling an
extension that has been blacklisted makes sense off-hand, unfortunately
we don't know if an extension was *actually* blacklisted:

The website returns that operation for any extensions for which it
doesn't find any versions that match the shell version. That is, the
most likely reason is that the user updated to a new GNOME release
which the extension doesn't support yet.

It doesn't look like the website is going to change that behavior any
time soon[0], so drop the 'blacklist' handling for the time being.

[0] https://gitlab.gnome.org/Infrastructure/extensions-web/-/issues/95

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1132

6 years agojs: Add missing chain-ups in vfuncs
Florian Müllner [Thu, 26 Mar 2020 22:40:38 +0000 (23:40 +0100)]
js: Add missing chain-ups in vfuncs

Commit 55b57421d changed signal handlers to the corresponding vfuncs,
but didn't always chain up as necessary. In most places this doesn't
matter, but at the very least the commit broke activating message list
items via the keyboard.

Add all (hopefully) the missing chain-ups to get the expected behavior
back.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2319

6 years agomessageTray: Don't create notification policy on demand
Florian Müllner [Mon, 23 Mar 2020 19:59:31 +0000 (20:59 +0100)]
messageTray: Don't create notification policy on demand

This was changed in commit 8f15193b4 as a work-around for an ES6
class limitation, but now that Sources are GObject subclasses, we
no longer need to use that somewhat surprising pattern.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1131

6 years agomessageTray: Only destroy policy after emitting ::destroy
Florian Müllner [Wed, 25 Mar 2020 22:49:58 +0000 (23:49 +0100)]
messageTray: Only destroy policy after emitting ::destroy

Destroying the policy invalidates it, so accessing it from a
Source::destroy handler (for example to disconnect signal
handlers) currently results in warnings like:

Object .Gjs_ui_messageTray_NotificationApplicationPolicy
(0x7f8c7c0a64a0), has been already deallocated — impossible
to access it.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2238

6 years agost/icon: Add a default fallback icon
Florian Müllner [Wed, 25 Mar 2020 15:44:26 +0000 (16:44 +0100)]
st/icon: Add a default fallback icon

The idea behind commit 3dd8ffc2bb1cefd to try harder to avoid empty
icon actors because of missing icons was sound, so implement that
behavior in StIcon itself:

If the main gicon was not found, and the fallback gicon isn't set or
wasn't found either, fall back to the standard 'missing-image' icon.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1127

6 years agoRevert "texture-cache: Use image-missing image when no other icon was loaded"
Florian Müllner [Wed, 25 Mar 2020 15:40:47 +0000 (16:40 +0100)]
Revert "texture-cache: Use image-missing image when no other icon was loaded"

The commit broke StIcon's :fallback-gicon property, as it relies on failure to load
an icon to determine that the fallback should be shown.

Luckily StIcon is the only user of st_texture_cache_load_gicon() (at least in
regular shell code), so we'll be able to implement the 'image-missing' fallback
there.

This reverts commit 3dd8ffc2bb1cefd603bcadabd8886dda3192dbd5.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1127

6 years agoextensionPrefs: Export parent window for prefs dialog
Florian Müllner [Thu, 5 Mar 2020 17:01:38 +0000 (18:01 +0100)]
extensionPrefs: Export parent window for prefs dialog

Now that OpenExtensionPrefs()'s parentWindow parameter is actually
supported, export the main application window so it can act as
transient parent to the prefs dialog.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1087

6 years agodbusServices/extensions: Handle parentWindow parameter
Florian Müllner [Thu, 5 Mar 2020 16:19:38 +0000 (17:19 +0100)]
dbusServices/extensions: Handle parentWindow parameter

Now that the service implements the preference dialog, it's time
to support OpenExtensionPrefs()'s parentWindow parameter and make
the dialog a transient of the external window if specified.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1087

6 years agoshew: Add small library for dealing with external windows
Florian Müllner [Thu, 5 Mar 2020 03:52:09 +0000 (04:52 +0100)]
shew: Add small library for dealing with external windows

In order to support OpenExtensionPrefs()'s parentWindow parameter,
we will need the ability to make a window transient to an external
window identified by a string handle.

This takes the corresponding code from xdg-desktop-portal-gtk and
brings it into an introspectable form, likewise the counterpart in
libportal to export a string handle for a GtkWindow.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1087

6 years agoUpdate Basque translation
Ibai Oihanguren Sala [Thu, 26 Mar 2020 15:11:16 +0000 (15:11 +0000)]
Update Basque translation

6 years agoFix prompt for updates on end session dialog
Michael Catanzaro [Wed, 18 Mar 2020 01:56:33 +0000 (20:56 -0500)]
Fix prompt for updates on end session dialog

Since PackageKit 1.11.1, the prompt to install updates on the end
session dialog has been (mostly) broken. The problem is that it only
works if PackageKit is running at the time the end session dialog is
opened; otherwise, our GDBusProxy has invalidated all of its properties,
which we read to see if update is possible. We need to autostart
PackageKit before reading its properties to fix this problem. That would
be easy if we were calling a method to see if an update or distro
upgrade were available, but since we're just checking a property, using
cached properties won't suffice. We'll have to manually check the
property value to ensure we autostart PackageKit.

Most of the code is written by Florian. Thanks Florian!

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/2276

6 years agolayout: Show system background and animate on the same frame
Daniel van Vugt [Tue, 17 Mar 2020 07:58:21 +0000 (15:58 +0800)]
layout: Show system background and animate on the same frame

Previously we'd show the system background and then wait till the
main loop was idle before beginning the shell startup animation.
This resulted in one initial frame that was always just the system
background.

Now we try to get both the system background and the startup animation
begun on the same first frame.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1102

6 years agotelepathyClient: Use proper Object to wrap different tpl messages
Marco Trevisan (Treviño) [Fri, 20 Mar 2020 19:31:45 +0000 (20:31 +0100)]
telepathyClient: Use proper Object to wrap different tpl messages

In telepathyClient we consider messages both Tpl.TextEvents and
Tpl.Messages, and we manually create JS objects to copy the properties we
care for each one. This may lead to objects not matching the interface we
want.

Instead, use an object with construct-only properties and two factory static
methods to initialize it.

Unfortunately we need to use the ChatMessageClass for the class name or
calling the static methods would trigger a gjs error as per [1].

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1113

[1] https://gitlab.gnome.org/GNOME/gjs/-/issues/310

6 years agoUpdate German translation
Wolfgang Stöggl [Wed, 25 Mar 2020 22:11:59 +0000 (22:11 +0000)]
Update German translation

6 years agodata: ensure systemd environment is sanitized when shell exits
Ray Strode [Wed, 25 Mar 2020 20:30:46 +0000 (16:30 -0400)]
data: ensure systemd environment is sanitized when shell exits

When mutter is acting as a display server it sets a number of
environment variables in the user's session. These variables
tell applications where the display server's sockets are.

When the shell exits at logout time it leaves these environment
variables in the systemd --user environment, which can confuse
subsequent sessions.

This commit clears up the environment on exit.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1129

6 years agotelepathyClient: Use GObjects based message objects
Marco Trevisan (Treviño) [Fri, 20 Mar 2020 19:06:55 +0000 (20:06 +0100)]
telepathyClient: Use GObjects based message objects

As per commit b5676a2a5 ChatNotification is a GObject, but I was wrongly
considering that it was using Tp.Message's as children, instead it just
uses custom-built objects to pass information around through signals.

Given gjs can only use GObjects as signal parameters, create a small wrapper
class to hold the ChatNotification messages and use it as signal parameter.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2449

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1112

6 years agolint: Sync configuration with gjs
Florian Müllner [Wed, 25 Mar 2020 21:15:26 +0000 (22:15 +0100)]
lint: Sync configuration with gjs

Nothing big or scary, just a bump in the standard version which
allows us to use shiny things without eslint complaining :-)

6 years agomain: Do not warn about missing GDM on each login
Florian Müllner [Fri, 20 Mar 2020 11:42:04 +0000 (12:42 +0100)]
main: Do not warn about missing GDM on each login

We now warn on startup if screen locking isn't available, however for
users who choose not to use GDM or logind, repeating the warning on
each login is more annoying than helpful.

Instead, limit the warning to the first login on which the screen lock
became unavailable. That way the notification will still serve the
intended purpose of informing the user, but without being perceived
as nagging.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2432

6 years agoenvironment: Hook up touch_file to GFile prototype
Florian Müllner [Mon, 23 Mar 2020 17:00:27 +0000 (18:00 +0100)]
environment: Hook up touch_file to GFile prototype

We don't usually extend introspected types with our own API, but in
this case it's too tempting to make the helper functions usable with
Gio._promisify() ...

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2432

6 years agoshell/util: Add touch_file_async() helper
Florian Müllner [Mon, 23 Mar 2020 16:57:38 +0000 (17:57 +0100)]
shell/util: Add touch_file_async() helper

Add a small helper method to asynchronously "touch" a file and return
whether the file was created or not.

As g_file_make_directory_with_parents() doesn't have an async variant,
we need a C helper to make the entire operation non-blocking.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2432

6 years agoextensionPrefs: Ensure up-to-date release version in metainfo
Florian Müllner [Sun, 22 Mar 2020 17:00:00 +0000 (18:00 +0100)]
extensionPrefs: Ensure up-to-date release version in metainfo

It's easy to forget to add a new <release> tag to the metainfo when
doing a new release.

Address this with an additional test if appstream-util is recent
enough to include the new validate-version command, so distcheck
fails when the metainfo wasn't updated.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1117

6 years agoendSessionDialog: apply updates by default
Michael Catanzaro [Wed, 25 Mar 2020 17:17:28 +0000 (12:17 -0500)]
endSessionDialog: apply updates by default

Users can still uncheck the box to avoid applying updates, but by
default we will encourage the user to update.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2427

6 years agost: Apply css foreground color to text as a PangoAttribute
Carlos Garnacho [Tue, 24 Mar 2020 23:34:58 +0000 (00:34 +0100)]
st: Apply css foreground color to text as a PangoAttribute

Rely on the Pango renderer handling this properly, instead of tinting
the full ClutterText in the color specified through css.

Also set the caret color explicitly, since it used to be set as a side
effect of clutter_text_set_color(), but no longer is.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/850
6 years agoUpdate Turkish translation
Emin Tufan Çetin [Wed, 25 Mar 2020 06:27:54 +0000 (06:27 +0000)]
Update Turkish translation

6 years agoshell/screenshot: Throw error on failure
Florian Müllner [Tue, 24 Mar 2020 06:15:26 +0000 (07:15 +0100)]
shell/screenshot: Throw error on failure

Commit da537cda43 moved the Shell.Screenshot API to GIO's async pattern,
but we never set the GError passed to the *_finish() functions and only
indicate failure by returning FALSE.

The expected behavior is to throw an error in that situation, so make sure
we do that.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1123

6 years agoshell/screenshot: Remove unnecessary NULL check
Florian Müllner [Tue, 24 Mar 2020 06:10:27 +0000 (07:10 +0100)]
shell/screenshot: Remove unnecessary NULL check

Since commit be5f5ec9d40, the output stream is created externally and
expected to be non-NULL, so the check is now pointless (in particular
*after* calling g_object_ref() on the stream).

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1123

6 years agoshell/screenshot: Check preconditions of public API
Florian Müllner [Tue, 24 Mar 2020 07:45:12 +0000 (08:45 +0100)]
shell/screenshot: Check preconditions of public API

It's good practice to guard public API against programmer errors,
so add the usual g_return*_if_fail() calls.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1123

6 years agoscreenshot: Return error when stream creation fails
Florian Müllner [Tue, 24 Mar 2020 06:44:31 +0000 (07:44 +0100)]
screenshot: Return error when stream creation fails

The Shell.Screenshot API expects valid output streams for writing the
completed screenshot, not NULL.

Handle this properly by returning an error instead of passing it on
to the screenshot.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1123

6 years agodbusServices/extensions: Include Params module
Florian Müllner [Tue, 24 Mar 2020 09:13:43 +0000 (10:13 +0100)]
dbusServices/extensions: Include Params module

It's unused and was removed in commit a0467bf875, which broke extensions
that rely on it in their preference widget.

As the removal only happened post-3.36.0, add it back until we branch.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2476

6 years agoibusManager: Simplify code a bit
Florian Müllner [Mon, 23 Mar 2020 22:22:17 +0000 (23:22 +0100)]
ibusManager: Simplify code a bit

ibus_bus_request_name_async_finish() will throw an error on failure,
so we can move the error handling there instead of checking for the
return value, which saves one level of indentation.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1122

6 years agotexture-cache: Use image-missing image when no other icon was loaded
Mario Sanchez Prada [Wed, 10 May 2017 14:59:32 +0000 (15:59 +0100)]
texture-cache: Use image-missing image when no other icon was loaded

If a given icon is not available for neither the current theme nor any
of the fallback options (default theme -"Adwaita", "gnome"...), the
call to gtk_icon_theme_lookup_by_gicon() will return a NULL value, which
returned by the Shell Toolkit as is, causing trouble in the Shell's JS
code when calling shell_app_create_icon_texture() to create an icon.

To at least mitigate the chances of this having this issue happening, we
should at least try to load the standad 'image-missing' icon from the
Icon Naming Specification spec when we receive a NULL here, so that
at least we try to show something to the user, even if it's ugly.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1121

6 years agoremoteSearch: Fix typos in log messages
Philip Withnall [Fri, 25 Jan 2019 11:58:29 +0000 (11:58 +0000)]
remoteSearch: Fix typos in log messages

I have this compulsion to rid the world of the typo ‘DBus’.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1121

6 years agoextensions-tool: Use new Extensions proxy
Florian Müllner [Sat, 21 Mar 2020 01:32:08 +0000 (02:32 +0100)]
extensions-tool: Use new Extensions proxy

While sandboxing isn't a concern for the gnome-extensions command line
tool, using the Extensions proxy directly means that D-Bus methods are
called from the tool rather than gnome-shell, which allows the proxy
to auto-shutdown when done.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1106

6 years agoextensionPrefs: Use new Extensions proxy
Florian Müllner [Wed, 4 Mar 2020 04:05:08 +0000 (05:05 +0100)]
extensionPrefs: Use new Extensions proxy

We will soon sandbox the application, so it makes sense to not request
more access than strictly necessary (even with priviledged access like
extension management).

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1106

6 years agodbusServices/extensions: Take over prefs dialog from app
Florian Müllner [Wed, 4 Mar 2020 04:05:08 +0000 (05:05 +0100)]
dbusServices/extensions: Take over prefs dialog from app

As outlined earlier, in order to turn the Extensions app into a properly
sandboxed application, we need to split out the extension prefs dialog
and move it elsewhere.

With "elsewhere" being the new Extensions D-Bus service, effectively
turning it into a shell extensions portal.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1106

6 years agodbusServices/extensions: Proxy Extensions API
Florian Müllner [Wed, 4 Mar 2020 03:02:28 +0000 (04:02 +0100)]
dbusServices/extensions: Proxy Extensions API

Similar to the previously added org.freedesktop.Notifications proxy,
this exposes the org.gnome.Shell.Extensions API and forwards any
request to the real implementation in gnome-shell.

The motivation differs though: We want to be able to package the
extension app as flatpak and distribute it separately, but the
extension prefs dialog is hard to impossible to sandbox:

 - filenames need translating between host and sandbox, and we
   can only do that in some cases (serializing/deserializing
   extensions), but not others (extension settings that refer
   to files)

 - system extensions install their GSettings schemas in the system
   path; the best we can do there is assume a host prefix of /usr
   and set GSETTINGS_SCHEMA_DIR in the flatpak (eeks)

 - extensions may rely on additional typelibs that are present on
   the host (for example because gnome-shell itself depends on
   them), but not inside the sandbox - unless we bundle all of
   gnome-shell's dependencies

 - if gjs/mozjs differ between host and sandbox, extensions must
   handle different runtimes for the extension and its prefs

And all those issues occur despite a very permissive sandbox (full
host filesystem access, full dconf access, full org.gnome.Shell
access (including Eval()!)).

This new service will give us an alternative place for handling
the preference dialog:

 - it runs outside of gnome-shell process, so can open windows

 - it runs on the host, so the extension's prefs get to run
   in the same namespace as the extension itself

That is, the service will provide portal-like functionality (albeit
not using the org.freedesktop.portal.* namespace, as extension
management is an inherently privileged operation).

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1106

6 years agoextensionPrefs: Stop handling UUIDs on the command line
Florian Müllner [Thu, 5 Mar 2020 18:44:28 +0000 (19:44 +0100)]
extensionPrefs: Stop handling UUIDs on the command line

We are jumping through quite some hoops to support showing only the
preference dialog when given a UUID on the command line.

As gnome-shell is about to stop calling out to us for the prefs dialog,
the reason for supporting this is going away, so remove all the special
handling.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1106

6 years agoextensionPrefs: Use template for preference dialog
Florian Müllner [Fri, 6 Mar 2020 00:03:45 +0000 (01:03 +0100)]
extensionPrefs: Use template for preference dialog

The dialog that contains the extension's preference widget has become
fairly complex over time, mostly due to the error handling.

It therefore makes sense to move it to a template, just like we did
for the main application window and extension rows.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1106

6 years agocloseDialog: Remove transitions before resetting dialog
Florian Müllner [Sat, 21 Mar 2020 23:18:13 +0000 (00:18 +0100)]
closeDialog: Remove transitions before resetting dialog

On X11, _onFocusChanged() updates the input region, as well as the
reactive-ness of the dialog's buttons.

That method is not only used as signal handlers (which are correctly
disconnected when the dialog is hidden), it also runs when the "show"
transition completes.

That's a problem if the transition is still ongoing when the dialog is
hidden, as it will then only complete when it is replaced by the "hide"
transition, after the this._dialog has been reset to null, and trying
to access the dialog's buttons results in an error.

Avoid this by explicitly removing all transition on hide before
resetting the dialog.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2467

6 years agokeyboard: Fix fallback layout when using variants
Florian Müllner [Mon, 23 Mar 2020 15:14:47 +0000 (16:14 +0100)]
keyboard: Fix fallback layout when using variants

Commit c1ec7b2ff meant to fall back to the base layout in case
a variant like `fr+oss` is set up, but as we are checking for
'+' on the array rather than the layout name, the fallback only
"works" for a layout that is literally called '+', whoops.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2471

6 years agounlockDialog: Handle embedded newlines in notifications
Florian Müllner [Sun, 22 Mar 2020 20:14:34 +0000 (21:14 +0100)]
unlockDialog: Handle embedded newlines in notifications

Detailed notifications are meant to be single line, just as unexpanded
notification banners. So handle them the same way as in the message
list, and replace embedded newlines by spaces.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2463

6 years agologinDialog: Retain native logo dimensions
Daniel van Vugt [Mon, 16 Mar 2020 10:05:53 +0000 (18:05 +0800)]
loginDialog: Retain native logo dimensions

So that the same logo may be used during boot and keeps its
dimensions on the login screen, appearing to never move.

Related to: https://bugs.launchpad.net/bugs/1867133

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1101

6 years agoextensions-tool: Use OpenExtensionPrefs() method
Florian Müllner [Tue, 10 Mar 2020 16:47:25 +0000 (17:47 +0100)]
extensions-tool: Use OpenExtensionPrefs() method

LaunchExtensionPrefs() was deprecated in commit fda938175e5d,
so switch to the replacement.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1097